██████╗ ███████╗████████╗██╗██████╗ ███████╗██████╗ ██╗ █████╗
██╔══██╗██╔════╝╚══██╔══╝██║██╔══██╗██╔════╝██╔══██╗██║██╔══██╗
██████╔╝█████╗ ██║ ██║██████╔╝█████╗ ██║ ██║██║███████║
██╔══██╗██╔══╝ ██║ ██║██╔═══╝ ██╔══╝ ██║ ██║██║██╔══██║
██║ ██║███████╗ ██║ ██║██║ ███████╗██████╔╝██║██║ ██║
╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝╚═╝ ╚══════╝╚═════╝ ╚═╝╚═╝ ╚═╝
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Numero intero (informatica)
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
In mwawinformatica si definisce mwbaintero (o nella sua forma mwbqinglese mwbginteger, spesso abbreviato in mwbwint) ogni mwcatipo di dato che possa rappresentare un sottoinsieme dell'insieme matematico dei mwcqnumeri interi.
Contents
• Word
• Note
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Valore e rappresentazione
Il mwdqvalore di un mwdgdato di tipo intero consiste nel numero intero a cui corrisponde. La sua mwdwrappresentazione consiste nel modo in cui esso è immagazzinato nella memoria del computer. I dati interi possono essere mweacon segno o mweqsenza segno, cosa che ne discrimina la capacità di rappresentare numeri negativi.
Il metodo più comune di rappresentare questo tipo di dati consiste in una stringa di mwewbit, usando il mwfasistema binario. L'mwfqordine dei byte all'interno della stringa può variare. La mwfglunghezza o mwfwprecisione è il numero di bit impiegato nella rappresentazione. Un tipo di dati intero con precisione n può rappresentare fino a 2mwgan valori; per esempio, un tipo senza segno può rappresentare i numeri da 0 a 2mwgqn-1.
Esistono tre modi differenti per rappresentare i numeri negativi in un sistema binario. Il più comune è il "mwgwcomplemento a due", che permette di rappresentare i numeri da -2mwha(n-1) a 2mwhq(n-1)-1. Questo metodo è conveniente perché crea una corrispondenza biunivoca tra valori e rappresentazioni, e perché nelle operazioni di addizione e sottrazione non è necessario distinguere tra valori con segno e senza. Gli altri metodi usati sono quelli del "segno e valore assoluto" e del "complemento a uno" (si veda la mwhgrappresentazione dei numeri relativi).
Tipi di dato interi comuni
| Bit | Nome | Portata | Impieghi |
|---|---|---|---|
| 8 | Byte , ottetto | Con segno: da −128 a +127 Senza segno: da 0 a +255 | Caratteri ASCII , carattere C (minimo), byte Java |
| 16 | Mezza word, word | Con segno: da −32.768 a +32.767 Senza segno: da 0 a +65.535 | Caratteri UCS-2, int C short (minimo), interi C (minimo), carattere Java, short Java |
| 32 | word, word doppia (double), lunga | Con segno: da −2.147.483.648 a +2.147.483.647 Senza segno: da 0 a +4.294.967.295 | Caratteri UCS-4, True color con alpha, C int (normale), C long int (minimo), Java int |
| 64 | word doppia, lunga, quadrupla | Con segno: da −9.223.372.036.854.775.808 a +9.223.372.036.854.775.807 Senza segno: da 0 a +18.446.744.073.709.551.615 | C long int (su linux sistemi a 64 bit [ 1 ] ), C99 long long int (minimo), Java long |
| 128 | | Con segno: da −170.141.183.460.469.231.731.687.303.715.884.105.728 a +170.141.183.460.469.231.731.687.303.715.884.105.727 Senza segno: da 0 a +340.282.366.920.938.463.463.374.607.431.768.211.455 | C int __attribute__ ((mode(TI))) (su sistemi a 64 bit con gcc ) |
| n | Intero a n bit | Con segno: da -2^{n-1} a 2^{n-1} -1 Senza segno: da 0 a 2^{n}-1 | |
In genere ogni mwzqCPU supporta un ridotto numero di tipi di dati, sia con sia senza segno. La tabella sopra mostra i tipi supportati dalla maggior parte dei processori in commercio in via mwzghardware. Linguaggi di programmazione ad alto livello permettono ad esempio numeri composti da un numero di bit doppio rispetto al massimo supportato dallmwzw'mwaahardware.
Alcuni linguaggi, come mwagLISP, mwawREXX e mwbaHaskell, supportano numeri a "precisione arbitraria" (conosciuti anche come interi a "precisione infinita" o mwbqbignum); altri linguaggi possiedono librerie che permettono di rappresentare numeri attraverso insiemi di variabili più piccole, come i mwbgBigInteger di mwbwJava. Questi metodi usano per la rappresentazione del numero tanta memoria quanta ne è necessaria, ma la memoria dei computer è finita, e quindi anche questi metodi permettono di rappresentare un insieme comunque finito di numeri interi. Si può comunque arrivare, con 8 KB di memoria, a rappresentare numeri di 2466 cifre.
Un tipo di dato mwcqbooleano o mwcgflag può rappresentare solo due valori: 0 e 1, generalmente associati rispettivamente a mwcwfalso e mwdavero. Questo tipo può essere immagazzinato su un singolo bit, ma generalmente viene impiegato un intero byte per semplicità di indirizzamento e velocità di accesso.
Una stringa di quattro bit è chiamata mwdgnibble: uno di questi corrisponde ad una cifra in codifica mwdwesadecimale e contiene una cifra o un codice di segno in mweadecimale binario.
Un long integer (mwegintero lungo) può contenere un numero intero positivo o negativo compreso in un intervallo uguale o più ampio di quello di una normale variabile mwewintero sulla stessa piattaforma. Nella pratica è comune che un long integer occupi il doppio o lo stesso spazio richiesto da un normale integer, seppure questo non sia necessario. Una variabile definita col tipo long integer in un mwfalinguaggio di programmazione può avere una dimensione diversa da una variabile definita con un tipo simile in un altro linguaggio. Inoltre in alcuni linguaggi come mwfqJava la dimensione è fissa per tutte le mwfgpiattaforme, mentre in altri dipende dal tipo di macchina.
Quella che segue è una tabella dei più comuni valori del mwgalong integer nei diversi linguaggi di programmazione:
| linguaggio di programmazione | piattaforma | nome del tipo | spazio in byte | valore minimo | valore massimo |
|---|---|---|---|---|---|
| VB | Windows | Long | 4 | −2.147.483.648 o −2 31 | 2.147.483.647 o 2 31 −1 |
| VBA | Windows , Mac OS | Long | 4 | −2.147.483.648 o −2 31 | 2.147.483.647 o 2 31 −1 |
| VB.NET | tutte le piattaforme | long | 8 | −9.223.372.036.854.775.808 o −2 63 | 9.223.372.036.854.775.807 o 2 63 −1 |
| Java | tutte le piattaforme | long | 8 | −9.223.372.036.854.775.808 o −2 63 | 9.223.372.036.854.775.807 o 2 63 −1 |
| C# | tutte le piattaforme | long | 8 | −9.223.372.036.854.775.808 o −2 63 | 9.223.372.036.854.775.807 o 2 63 −1 |
| PHP | tutte le piattaforme | $ | 8 | −9.223.372.036.854.775.808 o −2 63 | 9.223.372.036.854.775.807 o 2 63 −1 |
L'mw3aAPI di Windows definisce il tipo mw3qLONG come un intero di 4 byte. Questo vale indifferentemente sui sistemi a 16, 32 e 64 bit per ragioni di mw3gretrocompatibilità.
Puntatori
Un puntatore consiste spesso, ma non sempre, in un numero intero di data lunghezza. Questa è spesso la maggiore supportata dal sistema in via mw4ghardware. Il valore del numero è l'indirizzo di ciò a cui rimanda il puntatore.
Byte e ottetto
Il termine mw5gbyte era inizialmente riferito alla mw5wpiù piccola quantità di memoria indirizzabile: in passato furono usati byte a 5,6,7,8 e 9 bit. Furono creati inoltre computer che potevano indirizzare i singoli bit o solo mw6aparole di 16 o 32 bit, al riguardo dei quali il termine byte non era utilizzato affatto.
Il termine "ottetto" si riferisce esclusivamente a quantità di memoria di 8 bit. Si utilizza soprattutto per le mw6greti informatiche, in cui elaboratori che utilizzano più formati possono dover comunicare.
Attualmente il termine "ottetto" è caduto in disuso insieme agli altri formati, e viene generalmente identificato col termine "byte".
I byte sono utilizzati per misurare ogni quantità di dati dell'informatica, che sia una stringa di testo di 50 byte, un mw7qfile da 100 KB, un modulo di mw7gRAM da 128 MB o un mw7wdisco rigido da 30 GB. I prefissi utilizzati per le unità di misura sono spesso le stesse del mw8aSistema Internazionale, ma le grandezze sono diverse; ciò è importante soprattutto per i dischi rigidi, i cui produttori ne pubblicizzano la capacità con le unità di misura del SI, facendoli sembrare più capaci di quanto siano in realtà (vedere al riguardo l'articolo sui prefissi binari).
Word
Il termine mw9qword (mw9gin inglese mw9wparola) è utilizzato in informatica per piccoli gruppi di bit che possono essere processati contemporaneamente dalle CPU di una particolare architettura. La grandezza della parola è specifica di quest'ultima. Sono state usate parole di varie dimensioni, come 6, 8, 12, 16, 18, 24, 32, 36, 39, 48, 60, e 64 bit. Data la dipendenza di questa dall'architettura, la dimensione della parola è determinata dalla prima CPU di una famiglia, a prescindere dalla compatibilità delle versioni successive. Il significato dei termini derivati mw-amezza parola, mw-qparola doppia, mw-gparola lunga, mw-wparola quadrupla dipende inoltre sempre dalla CPU e dal mw-asistema operativo. Al mw-q2004 le parole di 32 bit sono le più usate in elaboratori di uso comune, mentre parole a 64 bit sono usate in grandi sistemi. Molti processori mw-gembedded usano ancora parole a 8 e 16 bit, mentre le parole a 36 bit o comunque non multipli di 8 bit, usate agli albori dell'informatica, sono scomparse insieme ai byte non a 8 bit.
Note
cite-note-agnerfog-11. mwaqoAgner Fog, mwaqsmwaqwCalling conventions for different C++ compilers and operating systems: Chapter 3, Data Representation (mwaq0mwaq4PDF), su mwaq8agner.org, 16 febbraio 2010. mwaraURL consultato il 30 agosto 2010.
Collegamenti esterni
• citerefsapere-itInteger, su sapere.it, De Agostini.
• citereffoldoc(EN) Denis Howe, integer, in Free On-line Dictionary of Computing. Disponibile con licenza mwaryGFDL